package com.yanfan.energy.util;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Author huan
 * @Description
 * @ClassName 2023年01月31日 16:18:00
 * @Version 1.0
 **/
public class SerialNumberUtil {

    /**
     * 根据当前时间生成分配批次号
     *
     * @return
     */
    public static String createBatchNo() {
        // 返回分配批次
        return "AD-" + DateFormatHolder.DATE_FORMAT.format(new Date());
    }

    /**
     * 根据当前时间生成分配批次号
     *
     * @return
     */
    public static String createSegmentNo() {
        // 返回分配批次
        return "BA-" + DateFormatHolder.DATE_FORMAT.format(new Date());
    }

    /**
     * 根据当前时间生成分配工单号
     *
     * @return
     */
    public static String createDispatchNo() {
        // 返回分配批次
        return "GD-" + DateFormatHolder.DATE_FORMAT.format(new Date());
    }

    /**
     * 根据当前时间生成分配任务项号
     *
     * @return
     */
    public static String createTaskNo() {
        // 返回分配批次
        return "TA-" + DateFormatHolder.DATE_FORMAT.format(new Date());
    }

    /**
     * 根据当前时间生成分配任务项号
     *
     * @return
     */
    public static String createTemplateNo() {
        // 返回分配任务
        return "TE-" + DateFormatHolder.DATE_FORMAT.format(new Date());
    }

    /**
     * 排程管理生成编号方法
     *
     * @return
     */
    public static String createSchedulesNo() {
        // 返回排程编号
        return "SC-" + DateFormatHolder.DATE_FORMAT.format(new Date());
    }

    /**
     * 订单管理生成编号方法
     *
     * @return
     */
    public static String createOrderNo() {
        // 返回订单编号
        return "PO-" + DateFormatHolder.DATE_FORMAT.format(new Date());
    }

    /**
     * 巡检任务记录生成巡检编号
     *
     * @return java.lang.String
     * @author caijinkang
     * @date 2023/4/6 15:03
     */
    public static String createInspectionPlan(Date date) {
        // 返回
        return "OSI-" + DateFormatHolder.DATE_FORMAT.format(date);
    }

    public static String createStationNo() {
        // 返回订单编号
        return "AX-" + DateFormatHolder.DATE_FORMAT.format(new Date());
    }

    /**
     * 双重校验锁的单例模式创建一个时间格式化实例，以减少每次创建实例的开支
     *
     * @author caijinkang
     * @date 2023/2/16 16:09
     * @return null
     */
    static class DateFormatHolder {
        private static final DateFormat DATE_FORMAT = new SimpleDateFormat("MMddHHmm");
    }


}
